package com.css.fxfzfxqh.modules.buildingKilometerGrid.model;

import cn.hutool.core.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 分页接口返回类型
 *
 * @param <T>
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult<T> {
    /**
     * 当前页码
     */
    private int page;

    /**
     * 当前页大小
     */
    private int pageSize;
    /**
     * 总共有几页
     */
    private int totalPage;

    /**
     * 总共多少条
     */
    private int total;

    /**
     * 数据列表
     */
    private List<T> list;

    public static <T> PageResult<T> build(Integer page, Integer rows, Integer total, List<T> list) {
        return new PageResult<T>(
                page,
                rows,
                PageUtil.totalPage(total, rows),
                total,
                list);
    }

    public static <T> PageResult<T> buildNull(Integer page, Integer rows) {
        return new PageResult<T>(
                page,
                rows,
                PageUtil.totalPage(0, rows),
                0,
                null);
    }
}
